import java.rmi.Remote;


public interface ISvMon extends Remote {
	
	public String osName() throws java.rmi.RemoteException;
	
	public long uptimeInSeconds() throws java.rmi.RemoteException;
	
	public MemoryStats physical() throws java.rmi.RemoteException;
	
	public MemoryStats swap() throws java.rmi.RemoteException;
	
	/**
	 * 
	 * @return wersja jadra.
	 * Powinna być w granicach 15-25 znaków.
	 */
	public String kernelVersion() throws java.rmi.RemoteException;
	
	/**
	 * 
	 * @return model procesora.
	 */
	public String cpuModel() throws java.rmi.RemoteException;
	
	/**
	 * 
	 * @return Czestotliwosc (maksymalna) pracy
	 * procesora.
	 */
	public float cpuFrequency() throws java.rmi.RemoteException;
	
	/**
	 * 
	 * @return tablice, w ktorej zapisane sa aktualne
	 * czestotliwosci rdzeni procesora.
	 */
	public float[] cpuCoreFrequency() throws java.rmi.RemoteException;
	
	/**
	 * 
	 * @return liczba procesorow / rdzeni procesora.
	 */
	public int cpuNum() throws java.rmi.RemoteException;
	
	/**
	 * Zwraca trzy liczby:
	 * pierwsza - srednie obciazenie w ciagu ostatniej minuty,
	 * druga - srednie obciazenie w ciagu ostatnich 5 minut,
	 * trzecia - srednie obciazenie w ciagu ostatnich 15 minut,
	 * @return aktualne obciazenie procesora.
	 */
	public float[] cpuLoad() throws java.rmi.RemoteException;

}
